home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1997 May / PC Plus Super CD Issue 127 (May 1997).iso / handson / java / vectors2 / frame1.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-02-07  |  6.6 KB  |  207 lines

  1. import java.awt.Component;
  2. import java.awt.Container;
  3. import java.awt.Event;
  4. import java.awt.FileDialog;
  5. import java.awt.Frame;
  6. import java.awt.Label;
  7. import java.awt.LayoutManager;
  8. import java.awt.List;
  9. import java.awt.Menu;
  10. import java.awt.MenuBar;
  11. import java.awt.MenuItem;
  12. import java.awt.TextField;
  13. import java.util.Enumeration;
  14. import java.util.Vector;
  15.  
  16. public class Frame1 extends Frame {
  17.    Vector thingsInRoom;
  18.    Vector thingsInSwagBag;
  19.    FileDialog OpenFileDialog;
  20.    List RoomList;
  21.    List PlayerList;
  22.    Label label1;
  23.    Label label2;
  24.    Label label3;
  25.    Label label4;
  26.    TextField textField1;
  27.    MenuBar mainMenuBar;
  28.    Menu menu1;
  29.    Menu menu2;
  30.    Menu menu3;
  31.  
  32.    void MoveObFromV1ToV2(Object Ob, Vector V1, Vector V2) {
  33.       V2.addElement(Ob);
  34.       V1.removeElement(Ob);
  35.    }
  36.  
  37.    void PlayerList_DblClick(Event event) {
  38.       Object thing = this.thingsInSwagBag.elementAt(this.PlayerList.getSelectedIndex());
  39.       this.MoveObFromV1ToV2(thing, this.thingsInSwagBag, this.thingsInRoom);
  40.       this.UpdateListBoxes();
  41.    }
  42.  
  43.    void RoomList_DblClick(Event event) {
  44.       Object thing = this.thingsInRoom.elementAt(this.RoomList.getSelectedIndex());
  45.       this.MoveObFromV1ToV2(thing, this.thingsInRoom, this.thingsInSwagBag);
  46.       this.UpdateListBoxes();
  47.    }
  48.  
  49.    void UpdateListBox(List l, Vector v) {
  50.       l.clear();
  51.       Enumeration e = v.elements();
  52.  
  53.       while(e.hasMoreElements()) {
  54.          l.addItem(((Thing)e.nextElement()).getName());
  55.       }
  56.  
  57.    }
  58.  
  59.    void UpdateListBoxes() {
  60.       this.UpdateListBox(this.PlayerList, this.thingsInSwagBag);
  61.       this.UpdateListBox(this.RoomList, this.thingsInRoom);
  62.    }
  63.  
  64.    void RoomList_ListSelect(Event event) {
  65.       this.textField1.setText(((Thing)this.thingsInRoom.elementAt(this.RoomList.getSelectedIndex())).getDescription());
  66.    }
  67.  
  68.    void PlayerList_ListSelect(Event event) {
  69.       Thing t = (Thing)this.thingsInSwagBag.elementAt(this.PlayerList.getSelectedIndex());
  70.       this.textField1.setText(t.getDescription());
  71.    }
  72.  
  73.    void Open_Action(Event event) {
  74.       this.OpenFileDialog.show();
  75.    }
  76.  
  77.    void About_Action(Event event) {
  78.       (new AboutDialog(this, "About...", false)).show();
  79.    }
  80.  
  81.    void Exit_Action(Event event) {
  82.       (new QuitDialog(this, "Quit the Application?", false)).show();
  83.    }
  84.  
  85.    public Frame1() {
  86.       ((Container)this).setLayout((LayoutManager)null);
  87.       ((Frame)this).addNotify();
  88.       ((Component)this).resize(((Container)this).insets().left + ((Container)this).insets().right + 457, ((Container)this).insets().top + ((Container)this).insets().bottom + 398);
  89.       this.OpenFileDialog = new FileDialog(this, "Open", 0);
  90.       this.RoomList = new List(0, false);
  91.       ((Container)this).add(this.RoomList);
  92.       this.RoomList.reshape(((Container)this).insets().left + 14, ((Container)this).insets().top + 45, 201, 225);
  93.       this.PlayerList = new List(0, false);
  94.       ((Container)this).add(this.PlayerList);
  95.       this.PlayerList.reshape(((Container)this).insets().left + 238, ((Container)this).insets().top + 45, 201, 225);
  96.       this.label1 = new Label("THINGS HERE...");
  97.       this.label1.reshape(((Container)this).insets().left + 14, ((Container)this).insets().top + 15, 196, 15);
  98.       ((Container)this).add(this.label1);
  99.       this.label2 = new Label("THING YOU HAVE...");
  100.       this.label2.reshape(((Container)this).insets().left + 238, ((Container)this).insets().top + 15, 203, 15);
  101.       ((Container)this).add(this.label2);
  102.       this.label3 = new Label("DOUBLE-CLICK TO TAKE");
  103.       this.label3.reshape(((Container)this).insets().left + 14, ((Container)this).insets().top + 278, 203, 22);
  104.       ((Container)this).add(this.label3);
  105.       this.label4 = new Label("DOUBLE-CLICK TO DROP");
  106.       this.label4.reshape(((Container)this).insets().left + 238, ((Container)this).insets().top + 278, 203, 24);
  107.       ((Container)this).add(this.label4);
  108.       this.textField1 = new TextField();
  109.       this.textField1.reshape(((Container)this).insets().left + 14, ((Container)this).insets().top + 315, 429, 28);
  110.       ((Container)this).add(this.textField1);
  111.       ((Frame)this).setTitle("A Basic Application");
  112.       this.mainMenuBar = new MenuBar();
  113.       this.menu1 = new Menu("File");
  114.       this.menu1.add("Open...");
  115.       this.menu1.add("Save");
  116.       this.menu1.add("Save As...");
  117.       this.menu1.addSeparator();
  118.       this.menu1.add("Exit");
  119.       this.mainMenuBar.add(this.menu1);
  120.       this.menu2 = new Menu("Edit");
  121.       this.menu2.add("Cut");
  122.       this.menu2.add("Copy");
  123.       this.menu2.add("Paste");
  124.       this.mainMenuBar.add(this.menu2);
  125.       this.menu3 = new Menu("Help");
  126.       this.menu3.add("About");
  127.       this.mainMenuBar.add(this.menu3);
  128.       ((Frame)this).setMenuBar(this.mainMenuBar);
  129.    }
  130.  
  131.    public Frame1(String title) {
  132.       this();
  133.       ((Frame)this).setTitle(title);
  134.    }
  135.  
  136.    public synchronized void show() {
  137.       ((Component)this).move(50, 50);
  138.       super.show();
  139.       this.thingsInRoom = new Vector();
  140.       this.thingsInSwagBag = new Vector();
  141.       this.thingsInRoom.addElement(new Thing("Sword", "A sword encrusted with jewels"));
  142.       this.thingsInRoom.addElement(new Thing("Troll", "An ugly, fierce-looking troll"));
  143.       this.thingsInRoom.addElement(new Thing("Lantern", "A brass lantern"));
  144.       this.thingsInRoom.addElement(new Thing("Pot of Noodles", "Something inedible-looking"));
  145.       this.thingsInRoom.addElement(new Thing("Banana", "An over-ripe banana"));
  146.       this.thingsInRoom.addElement(new Thing("Egg", "An Ostrich egg"));
  147.       this.thingsInRoom.addElement(new Thing("Knife", "A blood-stained dagger"));
  148.       this.thingsInSwagBag.addElement(new Thing("Coin", "A silver coin"));
  149.       this.thingsInSwagBag.addElement(new Thing("Bubble-gum", "A pink, pre-chewed, stickly lump"));
  150.       this.thingsInSwagBag.addElement(new Thing("Fluff", "Some pocket fluff"));
  151.       this.UpdateListBoxes();
  152.    }
  153.  
  154.    public boolean handleEvent(Event event) {
  155.       if (event.id == 201) {
  156.          ((Component)this).hide();
  157.          ((Frame)this).dispose();
  158.          System.exit(0);
  159.          return true;
  160.       } else {
  161.          if (event.target == this.RoomList && event.id == 1001) {
  162.             this.RoomList_DblClick(event);
  163.          }
  164.  
  165.          if (event.target == this.PlayerList && event.id == 1001) {
  166.             this.PlayerList_DblClick(event);
  167.          }
  168.  
  169.          if (event.target == this.RoomList && event.id == 701) {
  170.             this.RoomList_ListSelect(event);
  171.          }
  172.  
  173.          if (event.target == this.PlayerList && event.id == 701) {
  174.             this.PlayerList_ListSelect(event);
  175.          }
  176.  
  177.          return super.handleEvent(event);
  178.       }
  179.    }
  180.  
  181.    public boolean action(Event event, Object arg) {
  182.       if (event.target instanceof MenuItem) {
  183.          String label = (String)arg;
  184.          if (label.equalsIgnoreCase("Open...")) {
  185.             this.Open_Action(event);
  186.             return true;
  187.          }
  188.  
  189.          if (label.equalsIgnoreCase("About")) {
  190.             this.About_Action(event);
  191.             return true;
  192.          }
  193.  
  194.          if (label.equalsIgnoreCase("Exit")) {
  195.             this.Exit_Action(event);
  196.             return true;
  197.          }
  198.       }
  199.  
  200.       return super.action(event, arg);
  201.    }
  202.  
  203.    public static void main(String[] args) {
  204.       (new Frame1()).show();
  205.    }
  206. }
  207.